// src/common/global.js

const g = {
  rule: {
    //规则标题,没有实际作用,但是可以作为cms类名称依据
    title: ``,
    //网页的域名根,包含http头如 https://www,baidu.com
    host: '',
    //网站的分类页面链接
    url: '',
    //网站的请求头,完整支持所有的,常带ua和cookies
    headers: { 'User-Agent': 'IOS_UA', Referer: '' },
    // 对图片加了referer验证的有效,海阔专用,普通规则请勿填写
    图片来源: '',
    //静态分类名称拼接
    class_name: '电影&电视剧&动漫',
    //静态分类标识拼接
    class_url: 'dianying&dianshiju&dongman',
    //搜索链接 可以是完整路径或者相对路径,**代表搜索词 fypage代表页数
    ss_keyword: '斗罗大陆',
    searchUrl: '',
    //是否启用全局搜索
    searchable: '2',
    // 筛选网站传参,会自动传到分类链接下(本示例中的url参数)-url里参数为fyfilter,可参考蓝光影院.js
    filter_url: '',
    // 筛选条件字典
    filter: {},
    // 默认筛选条件字典(不同分类可以指定同样筛选参数的不同默认值)
    filter_def: {},
    play_parse: true,
    //移除某个线路及相关的选集
    tab_remove: [],
    //线路顺序,按里面的顺序优先，没写的依次排后面
    tab_order: [],
    //线路名替换如:lzm3u8替换为量子资源
    tab_rename: {},
    // js写法，仅js模式1有效.可以用于代码动态获取全局cookie之类的
    // 可操作变量有 rule_fetch_params,rule,以及基础的网页访问request,post等操作
    预处理: ``,
    //第一个是列表，第二个是标题，第三个是Pic,第四个是描述，第五个是链接，
    搜索: ``,
    一级: ``,
    二级: ``,
    lazy: `jxjj`,
  },
  other_name: {
    tply: '图片来源',
    ycl: '预处理',
    ss: '搜索',
    yj: '一级',
    ej: '二级',
  },
  getkv: function (obj, v) {
    // console.log('====getkey函数===')
    // console.log(v)
    for (const key in obj) {
      if (obj[key] === v) {
        return key
      }
      if (key === v) {
        return obj[key]
      }
    }
    // console.log('===end===')
    return v
  },

  get_json_value: function (any) {
    if (any === undefined) {
      return ''
    }
    if (any === null) {
      return ''
    }
    const t = typeof any
    // console.log(t)
    if (t === 'string') {
      return any
    } else if (t === 'number') {
      return String(any)
    } else if (t === 'object') {
      return JSON.stringify(any)
    } else if (t === 'boolean') {
      if (any) {
        return 'true'
      } else {
        return 'false'
      }
    }
    return ''
  },
  save_json: function (j, n, v) {
    // console.log('===' + n + '===')
    // console.log('===' + JSON.stringify(v) + '===')
    if (
      n === 'headers' ||
      n === 'filter' ||
      n === 'filter_def' ||
      n === 'tab_remove' ||
      n === 'tab_order' ||
      n === 'tab_rename'
    ) {
      try {
        // console.log(v)
        let a = JSON.parse(v)
        j[n] = a
        return
      } catch (e) {
        this.ShowMessage(
          `---------------------------\n` +
            n +
            `\n----------------------------\n字符串转对象失败!!!\n` +
            String(e),
        )
        return ''
      }
    } else if (n === 'play_parse') {
      if (v === 'false') {
        j[n] = false
        return
      } else {
        j[n] = true
        return
      }
    } else if (n === 'searchable') {
      j[n] = Number(v)
      return
    }
    j[n] = v
  },
  ShowMessage: function (str) {
    uni.showModal({
      title: '错误', // 标题
      content: str, // 内容
      showCancel: false, // 不显示取消按钮
      success: (res) => {
        if (res.confirm) {
          console.log('用户点击确定')
          // 在这里写确定后的逻辑
        }
      },
    })
  },
  dc_json: function (text) {
    // 点击按钮或触发事件时调用此方法
    uni.setClipboardData({
      data: text, // 要复制的字符串
      success: () => {
        uni.showToast({
          title: '复制成功',
          icon: 'none',
        })
      },
      fail: (err) => {
        uni.showToast({
          title: '复制失败',
          icon: 'none',
        })
        console.error('复制失败:', err)
      },
    })
  },
}

// 导出单例对象
export default g
